using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GestorDeFlotasDesktop.AbmAuto;
using GestorDeFlotasDesktop.AbmChofer;
using GestorDeFlotasDesktop.AbmCliente;
using GestorDeFlotasDesktop.AbmReloj;
using GestorDeFlotasDesktop.AbmRol;
using GestorDeFlotasDesktop.AbmTurno;
using GestorDeFlotasDesktop.AbmUsuario;
using GestorDeFlotasDesktop.AsignacionChoferAuto;
using GestorDeFlotasDesktop.Facturar;
using GestorDeFlotasDesktop.Listado_Estadistico;
using GestorDeFlotasDesktop.RegistrarViaje;
using GestorDeFlotasDesktop.RendicionDeCuenta;

namespace GestorDeFlotasDesktop
{
    public partial class FormPrincipal : Form
    {
        public FormPrincipal()
        {
            InitializeComponent();
        }

        #region CargarFuncionalidades

        public void CargarFuncionalidades(string usuario)
        {
            sqlManager.Conectar();
            dGridResultado.DataSource = sqlManager.ObtenerFuncionalidades(usuario);
            sqlManager.Desconectar();
            //dGridResultado.Visible = false;

            foreach (DataGridViewRow row in dGridResultado.Rows)
            {
                PermitirFuncinalidad(row.Cells["funcionalidad"].Value.ToString());

            }
        }

        #endregion

        #region PermitirFuncionalidad

        public void PermitirFuncinalidad(string funcionalidad)
        {

            if (funcionalidad == "ABM DE ROL")
                OpcionRol.Visible = true;
            if (funcionalidad == "ABM DE USUARIO")
                OpcionUsuario.Visible = true;
            if (funcionalidad == "ABM DE CLIENTE")
                OpcionCliente.Visible = true;
            if (funcionalidad == "ABM DE AUTO")
                OpcionAuto.Visible = true;
            if (funcionalidad == "ABM DE RELOJ")
                OpcionReloj.Visible = true;
            if (funcionalidad == "ABM DE CHOFER")
                OpcionChofer.Visible = true;
            if (funcionalidad == "ABM DE TURNO")
                OpcionTurno.Visible = true;
            if (funcionalidad == "ASIGNACIÓN CHOFER-AUTO")
                OpcionAsignarChoferAuto.Visible = true;
            if (funcionalidad == "RENDICIÓN DE CUENTA DEL CHOFER")
                OpcionRegistrarViaje.Visible = true;
            if (funcionalidad == "REGISTRO DE VIAJES")
                OpcionRendirViajes.Visible = true;
            if (funcionalidad == "LISTADO ESTADÍSTICO")
                OpcionListadoEstadistico.Visible = true;
            if (funcionalidad == "FACTURACIÓN A CLIENTE")
            OpcionFacturarCliente.Visible = true;

        }
        #endregion

        #region ABMs Auto

        #region AltaAuto
        private void altaAutoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AltaAuto formAltaAuto = new AltaAuto();
            formAltaAuto.ShowDialog(this);
        }
        #endregion

        #region BajaAuto
        private void bajaAutoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoAuto formListadoAuto = new ListadoAuto(); //Busca auto
            formListadoAuto.ShowDialog(this);
            if (formListadoAuto.datoAuto.id_auto != 0) //No se cancelo la busqueda
            {
                BajaAuto formBajaAuto = new BajaAuto();
                formBajaAuto.CargarDatos(formListadoAuto.datoAuto);
                formBajaAuto.ShowDialog(this);
            }
        }
        #endregion

        #region ModificacionAuto
        private void modificacionAutoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoAuto formListadoAuto = new ListadoAuto();  //Busca auto
            formListadoAuto.ListarTodos();
            formListadoAuto.ShowDialog(this);
            if(formListadoAuto.datoAuto.id_auto != 0) //No se cancelo la busqueda
            {
                ModificacionAuto formModificacionAuto = new ModificacionAuto();
                if (formListadoAuto.datoAuto.estado == "1")
                    formModificacionAuto.EsconderBotonHabilitar();
                formModificacionAuto.CargarDatos(formListadoAuto.datoAuto);
                formModificacionAuto.ShowDialog(this);
            }
        }
        #endregion

        #endregion

        #region ABMs Chofer

        #region AltaChofer
        private void altaChoferToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AltaChofer formAltaChofer = new AltaChofer();
            formAltaChofer.ShowDialog(this);
        }
        #endregion

        #region BajaChofer
        private void bajaChoferToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoChofer formListadoChofer = new ListadoChofer(); //Busca Chofer
            formListadoChofer.ShowDialog(this);
            if (formListadoChofer.datoChofer.id_chofer != 0)   //No se cancelo la busqueda
            {
                BajaChofer formBajaChofer = new BajaChofer();
                formBajaChofer.CargarDatos(formListadoChofer.datoChofer);
                formBajaChofer.ShowDialog(this);
            }
        }
        #endregion

        #region ModificacionChofer
        private void modificacionChoferToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoChofer formListadoChofer = new ListadoChofer();//Busca Chofer
            formListadoChofer.ListarTodos();
            formListadoChofer.ShowDialog(this);
            if (formListadoChofer.datoChofer.id_chofer != 0)//No se cancelo la busqueda
            {
                ModificacionChofer formModificacionChofer = new ModificacionChofer();
                if (formListadoChofer.datoChofer.estado == "1")
                    formModificacionChofer.EsconderBotonHabilitar();
                formModificacionChofer.CargarDatos(formListadoChofer.datoChofer);
                formModificacionChofer.ShowDialog(this);
            }
        }
        #endregion

        #endregion

        #region ABMs Cliente

        #region AltaCliente
        private void altaClienteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AltaCliente formAltaCliente = new AltaCliente();
            formAltaCliente.ShowDialog(this);
        }
        #endregion

        #region BajaCliente
        private void bajaClienteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoCliente formListadoCliente = new ListadoCliente(); //Busca Cliente
            formListadoCliente.ShowDialog(this);
            if (formListadoCliente.datoCliente.id_cliente != 0)   //No se cancelo la busqueda
            {
                BajaCliente formBajaCliente = new BajaCliente();
                formBajaCliente.CargarDatos(formListadoCliente.datoCliente);
                formBajaCliente.ShowDialog(this);
            }
        }
        #endregion

        #region ModificacionCliente
        private void modificacionClienteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoCliente formListadoCliente = new ListadoCliente();//Busca Cliente  
            formListadoCliente.ListarTodos();
            formListadoCliente.ShowDialog(this);
            if (formListadoCliente.datoCliente.id_cliente != 0)//No se cancelo la busqueda
            {
                ModificacionCliente formModificacionCliente = new ModificacionCliente();
                if (formListadoCliente.datoCliente.estado == "1")
                    formModificacionCliente.EsconderBotonHabilitar();
                formModificacionCliente.CargarDatos(formListadoCliente.datoCliente);
                formModificacionCliente.ShowDialog(this);
            }
        }
        #endregion

        #endregion

        #region ABMs Reloj

        #region AltaReloj
        private void altaRelojToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AltaReloj formAltaReloj = new AltaReloj();
            formAltaReloj.ShowDialog(this);
        }
        #endregion

        #region BajaReloj
        private void bajaRelojToolStripMenuItem_Click(object sender, EventArgs e)
        {

            ListadoReloj formListadoReloj = new ListadoReloj(); //Busca Cliente
            formListadoReloj.ShowDialog(this);
            if (formListadoReloj.datoReloj.id_reloj != 0)   //No se cancelo la busqueda
            {
                BajaReloj formBajaReloj = new BajaReloj();
                formBajaReloj.CargarDatos(formListadoReloj.datoReloj);
                formBajaReloj.ShowDialog(this);
            }
        }
        #endregion

        #region ModificacionReloj
        private void modificacionRelojToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoReloj formListadoReloj = new ListadoReloj(); //Busca Cliente
            formListadoReloj.ListarTodos();
            formListadoReloj.ShowDialog(this);
            if (formListadoReloj.datoReloj.id_reloj != 0)   //No se cancelo la busqueda
            {
                ModificacionReloj formModificacionReloj = new ModificacionReloj();
                if (formListadoReloj.datoReloj.estado == "1")
                    formModificacionReloj.EsconderBotonHabilitar();
                formModificacionReloj.CargarDatos(formListadoReloj.datoReloj);
                formModificacionReloj.ShowDialog(this);
            }
        }
        #endregion

        #endregion

        #region ABMs Rol

        #region AltaRol
        private void altaRolToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AltaRol formAltaRol = new AltaRol();
            formAltaRol.ShowDialog(this);
        }
        #endregion

        #region BajaRol
        private void bajaRolToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoRol formListadoRol = new ListadoRol();
            formListadoRol.ShowDialog(this);
            if (formListadoRol.datoRol.id_rol != 0)
            {
                BajaRol formBajaRol = new BajaRol();
                formBajaRol.CargarDatos(formListadoRol.datoRol);
                formBajaRol.ShowDialog(this);
            }
        }
        #endregion

        #region ModificacionRol
        private void modificacionRolToolStripMenuItem_Click(object sender, EventArgs e)
        {

            ListadoRol formListadoRol = new ListadoRol();
            formListadoRol.ListarTodos();
            formListadoRol.ShowDialog(this);
            if (formListadoRol.datoRol.id_rol != 0)
            {
                ModificacionRol formModificacionRol = new ModificacionRol();
                if (formListadoRol.datoRol.estado == "1")
                    formModificacionRol.EsconderBotonHabilitar();
                formModificacionRol.CargarDatos(formListadoRol.datoRol);
                formModificacionRol.ShowDialog(this);
                
            }
            
        }
        #endregion

        #endregion

        #region ABMs Turno

        #region Alta Turno
        private void altaTurnoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AltaTurno formAltaTurno = new AltaTurno();
            formAltaTurno.ShowDialog(this);
        }
        #endregion

        #region BajaTurno
        private void bajaTurnoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoTurno formListadoTurno = new ListadoTurno(); //Busca
            formListadoTurno.ShowDialog(this);
            if (formListadoTurno.datoTurno.id_turno != 0)   //No se cancelo la busqueda
            {
                BajaTurno formBajaTurno = new BajaTurno();
                formBajaTurno.CargarDatos(formListadoTurno.datoTurno);
                formBajaTurno.ShowDialog(this);
            }

        }
        #endregion

        #region ModificacionTurno
        private void modificacionTurnoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoTurno formListadoTurno = new ListadoTurno(); //Busca
            formListadoTurno.ListarTodos();
            formListadoTurno.ShowDialog(this);
            if (formListadoTurno.datoTurno.id_turno != 0)   //No se cancelo la busqueda
            {
                ModificacionTurno formModificacionTurno = new ModificacionTurno();
                if (formListadoTurno.datoTurno.estado == "1")
                    formModificacionTurno.EsconderBotonHabilitar();
                formModificacionTurno.CargarDatos(formListadoTurno.datoTurno);
                formModificacionTurno.ShowDialog(this);
            }
        }
        #endregion

        #endregion

        #region ABMs Usuario

        #region AltaUsuario
        private void altaUsuarioToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AltaUsuario formAltaUsuario = new AltaUsuario();
            formAltaUsuario.ShowDialog(this);
        }
        #endregion

        #region BajaUsuario
        private void bajaUsuarioToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoUsuario formListadoUsuario = new ListadoUsuario();
            formListadoUsuario.ListarTodos();
            formListadoUsuario.ShowDialog(this);
            if (formListadoUsuario.datoUsuario.username != "")
            {
                BajaUsuario formBajaUsuario = new BajaUsuario();
                formBajaUsuario.CargarDatos(formListadoUsuario.datoUsuario);
                formBajaUsuario.ShowDialog(this);
            }
        }
        #endregion

        #region ModificacionUsuario
        private void modificacionUsuarioToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ListadoUsuario formListadoUsuario = new ListadoUsuario();
            formListadoUsuario.ListarTodos();
            formListadoUsuario.ShowDialog(this);
            if (formListadoUsuario.datoUsuario.username != "")
            {
                ModificacionUsuario formModificacionUsuario = new ModificacionUsuario();
                if (formListadoUsuario.datoUsuario.estado == "1")
                    formModificacionUsuario.EsconderBotonHabilitar();
                formModificacionUsuario.CargarDatos(formListadoUsuario.datoUsuario);
                formModificacionUsuario.ShowDialog(this);

            }
        }
        #endregion

        #endregion

        #region Operaciones
        private void OpcionRegistrarViaje_Click(object sender, EventArgs e)
        {
            RegistrarViajes formRegistrarViajes = new RegistrarViajes();
            formRegistrarViajes.ShowDialog(this);
        }

        private void OpcionRendirViajes_Click(object sender, EventArgs e)
        {
            RendirViajes formRendirViajes = new RendirViajes();
            formRendirViajes.ShowDialog(this);
        }

        private void OpcionAsignarChoferAuto_Click(object sender, EventArgs e)
        {
            AsignacionChoferAuto.AsignacionChoferAuto formAsignarChoferAuto = new AsignacionChoferAuto.AsignacionChoferAuto();
            formAsignarChoferAuto.ShowDialog(this);
        }

        private void OpcionFacturarCliente_Click(object sender, EventArgs e)
        {
            Facturar.Facturar formFacturar = new Facturar.Facturar();
            formFacturar.ShowDialog(this);
        }

        private void OpcionListadoEstadistico_Click(object sender, EventArgs e)
        {
            ListadoEstadistico formListadoEstadistico = new ListadoEstadistico();
            formListadoEstadistico.ShowDialog(this);
        }
        #endregion

        private void FormPrincipal_Load(object sender, EventArgs e)
        {

        }

        private void cerrarSesionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

    }
}
